# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/novatek,nt35950.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Novatek NT35950-based display panels

maintainers:
  - AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>

description: |
  The nt35950 IC from Novatek is a Driver IC used to drive MIPI-DSI panels,
  with Static RAM for content retention in command mode and also supports
  video mode with VESA Frame Buffer Compression or Display Stream Compression
  on single, or dual dsi port(s).
  This DDIC is also capable of upscaling an input image to the panel's native
  resolution, for example it can upscale a 1920x1080 input to 3840x2160 with
  either bilinear interpolation or pixel duplication.

allOf:
  - $ref: panel-common.yaml#

properties:
  compatible:
    items:
      - enum:
          - sharp,ls055d1sx04
      - const: novatek,nt35950
    description: This indicates the panel manufacturer of the panel
      that is in turn using the NT35950 panel driver. The compatible
      string determines how the NT35950 panel driver shall be configured
      to work with the indicated panel. The novatek,nt35950 compatible shall
      always be provided as a fallback.

  reset-gpios:
    maxItems: 1
    description: phandle of gpio for reset line - This should be 8mA, gpio
      can be configured using mux, pinctrl, pinctrl-names (active high)

  avdd-supply:
    description: positive boost supply regulator
  avee-supply:
    description: negative boost supply regulator
  dvdd-supply:
    description: regulator that supplies the digital voltage
  vddio-supply:
    description: regulator that supplies the I/O voltage

  backlight: true
  ports: true
  reg: true

required:
  - compatible
  - reg
  - reset-gpios
  - avdd-supply
  - avee-supply
  - dvdd-supply
  - vddio-supply

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    dsi0 {
        #address-cells = <1>;
        #size-cells = <0>;

        panel@0 {
            compatible = "sharp,ls055d1sx04", "novatek,nt35950";
            reg = <0>;

            backlight = <&pmi8998_wled>;
            reset-gpios = <&tlmm 94 GPIO_ACTIVE_HIGH>;

            avdd-supply = <&lab>;
            avee-supply = <&ibb>;
            dvdd-supply = <&disp_dvdd_vreg>;
            vddio-supply = <&vreg_l14a_1p85>;

            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0>;
                    panel_in0: endpoint {
                        remote-endpoint = <&dsi0_out>;
                    };
                };

                port@1 {
                    reg = <1>;
                    panel_in1: endpoint {
                        remote-endpoint = <&dsi1_out>;
                    };
                };
            };
        };
    };

...
